package com.tedu.controller;

import com.alibaba.fastjson.JSON;
import com.tedu.pojo.ResultData;
import com.tedu.pojo.User;
import com.tedu.servies.UserServies;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 用户模块的控制器
 * 登录、注册、个人信息管理
 */
@Controller   // 声明UserController是一个控制器，交给spring管理
public class UserController {

    //从spring容器中，获取服务对象
    @Autowired
    UserServies userServies;


    //显示登录页面  当用户访问：/toLogin.do 时，进入本方法
    @RequestMapping("/toLogin")
    public String toLogin(){
        System.out.println("你正在访问登录页面，不是登录操作");
        return "login";
    }

    @RequestMapping("/toUserUpdate")
    public String toUserUpdate(){
        return "userdata";
    }


    @RequestMapping("/user/toRegister")
    public String toRegister(){
        return "register";

    }
    @RequestMapping("/toUserdata")
    public String toUserdata(){
        return "userdata";

    }
    @RequestMapping("/addressAdmin")
    public String addressAdmin(){
        return "addressAdmin";

    }


    //用户登录操作的方法
    @RequestMapping("/user/login")  //  登录地址：/user/login.do
    @ResponseBody   //返回用户  文本
    public String login(String username, String password, HttpSession session){
        System.out.println(username+"你正在进行登录操作"+password);
        List<User> login = userServies.login(username, password);
        //把登录成功后用户信息，返回给页面   json数据
        //{“data”:[用户对象]，”msg”:”本次请求是否成功，登录成功”，“code”：“200”}
        ResultData resultData ;
        if(login!=null&&login.size()>0){
            resultData = new ResultData("登录成功",200,login);
            //保存在session对象  保存第一个登录成功的用户对象
             session.setAttribute("user",login.get(0));

        }else{
            resultData = new ResultData("登录失败，用户名、密码错误",0,null);
        }
        //把resultData 对象转换为文本对象。
        String string = JSON.toJSONString(resultData);

        System.out.println("用户登录的json："+string);

        return string;
    }


    @RequestMapping("/user/zhuce")  //  登录地址：/user/login.do
    @ResponseBody
    public String zhuce(User user,HttpSession session){
//        System.out.println("你正在进行注册操作");
//        List<User> zhuceyh = userServies.zhuce(user);
//        ResultData resultDatazc ;
//        if(zhuceyh!=null&&zhuceyh.size()>0){
//            resultDatazc = new ResultData("注册成功",200,zhuceyh);
//            //保存在session对象  保存注册成功的用户对象
//            session.setAttribute("zhuceuser",zhuceyh);
//
//        }else{
//            resultDatazc = new ResultData("注册失败",0,null);
//
//        }
//            //保存在session对象  保存第一个登录成功的用户对象
//        String string1 = JSON.toJSONString(resultDatazc);
//        System.out.println("用户注册的json："+string1);
//        return string1;
        ResultData resultDatazc ;
        int zhuceyh = userServies.register(user);
        if (zhuceyh>0){
            System.out.println("注册成功");
            resultDatazc = new ResultData("注册成功",200,null);
        }
        else {
            System.out.println("注册失败");
            resultDatazc = new ResultData("注册失败",0,null);
        }
        System.out.println(resultDatazc);
       return JSON.toJSONString(resultDatazc);

    }

    @RequestMapping("/toUpdateUser")
    @ResponseBody
    public String toUpdateUser(User user,HttpSession session){
        ResultData resultDatagx ;
        User loginuser =(User) session.getAttribute("user");
        user.setId(loginuser.getId());
        int update = userServies.modify(user);
        System.out.println(loginuser);
        if (update>0){
            System.out.println("更新成功");
            resultDatagx = new ResultData("更新成功",200,null);
        }
        else {
            System.out.println("注册失败");
            resultDatagx = new ResultData("更新失败",0,null);
        }
        System.out.println(resultDatagx);
        return JSON.toJSONString(resultDatagx);

    }




}

